package cl.solidit.geomanagement.web.service;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cl.solidit.geomanagement.persistance.PersonaDAO;
import cl.solidit.geomanagement.persistance.UserDAO;
import cl.solidit.geomanagement.persistance.model.Persona;

import cl.solidit.geomanagement.persistance.model.Usuario;
import cl.solidit.geomanagement.persistance.util.Rut;

@Service
public class RegisterPersonsService {

	@Autowired
	PersonaDAO personaDAO;
	@Autowired
	UserDAO userDAO;

	public void registrarPersona(Persona persona) {
		persona.setRut(Rut.format(persona.getRut()));
		if (persona.getFechaIngreso() == null)
			persona.setFechaIngreso(new Date());
		personaDAO.createOrUpdate(persona);
	}

	public void registrarUsuario(Persona persona, HttpServletRequest request) {

		if (request.getSession().getAttribute("rol").equals(1L))
			persona.getUsuario().getRol().setId(2L);
		if (request.getSession().getAttribute("rol").equals(3L))
			persona.getUsuario().getRol().setId(1L);
		if (persona.getFechaIngreso() == null)
			persona.setFechaIngreso(new Date());
		persona.setRut(Rut.format(persona.getRut()));
		persona.getUsuario().setPersona(persona);
		personaDAO.createOrUpdate(persona);
	}

	public void actualizarUsuario(Persona persona, HttpServletRequest request) {

		persona.setRut(Rut.format(persona.getRut()));
		if (persona.getFechaIngreso() == null)
			persona.setFechaIngreso(new Date());
		Usuario u = persona.getUsuario();
		u.setPersona(persona);
		personaDAO.createOrUpdate(persona);
		userDAO.createOrUpdate(u);
	}
}
